package com.bjpowernode.service;

import com.bjpowernode.entity.Task;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 处理财务计划相关业务
 *
 * @author 刘逸晖
 */
public interface TaskService {

    /**
     * 新增财务计划
     *
     * @param task 新增数据
     */
    void insertTask(Task task);

    /**
     * 查询所有财务计划
     *
     * @return 所有财务计划
     */
    List<Task> selectAllTasks();

    /**
     * 根据 id 删除财务计划
     *
     * @param id 财务计划的 id
     */
    void deleteTaskById(Integer id);

    /**
     * 根据 id 查询财务计划
     *
     * @param id 预查询财务计划的 id
     */
    Task selectTaskById(Integer id);

    /**
     * 根据 id 更新财务计划
     *
     * @param task 财务计划的 id 极其新数据
     */
    void updateTaskById(Task task);

    /**
     * 查询指定月份财务计划的总金额
     *
     * @param month 月份
     * @return 当月财务计划的总金额
     */
    Integer selectTotalMoneyByMonth(@Param("month") Integer month);

    /**
     * 查询指定月份的财务计划
     *
     * @param month 月份
     * @return 当月财务计划
     */
    List<Task> selectTasksByMonth(Integer month);

}
